package com.cy.pj.common.utils;

import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExcelUtils {
	/**
	 * 
	 * @param sheetName 表格 名称
	 * @param title 表格标题行
	 * @param exportDataList 内容
	 * @param wb HSSFWorkbook对象
	 * @return
	 */
	public static HSSFWorkbook getHSSfWorkbook(
			String sheetName, String[] title, List<Map<String, Object>> exportDataList, HSSFWorkbook wb) {
		// 第一步，创建一个HSSFWorkbook，对应一个Excel文件
		if(wb == null){
			wb = new HSSFWorkbook();
		}
		// 第二步，在workbook中添加一个sheet,对应Excel文件中的sheet
		HSSFSheet sheet = wb.createSheet(sheetName);
		// 第三步，在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
		HSSFRow row = sheet.createRow(0);
		// 第四步，创建单元格，并设置值表头 设置表头居中
		HSSFCellStyle style = wb.createCellStyle();
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
		//声明列对象
		HSSFCell cell = null;

		//创建标题
		for(int i=0;i<title.length;i++){
			cell = row.createCell(i);
			cell.setCellValue(title[i]);
			cell.setCellStyle(style);
		}

		//循环写入内容
		//string是字段名，object是字段对应的值
		int i=0;
		for (Map<String, Object> map : exportDataList) {
			
			//获取相对应的字段的值
			row = sheet.createRow(i + 1);
			row.createCell(0).setCellValue(map.get("id").toString());
			row.createCell(1).setCellValue(map.get("name").toString());
			row.createCell(2).setCellValue(map.get("note").toString());
			row.createCell(3).setCellValue(map.get("createdTime").toString());
			row.createCell(4).setCellValue(map.get("modifiedTime").toString());
			/*
			 * String string = map.keySet().toString(); System.out.println(string);
			 * for(String k:map.keySet()) {
			 * 
			 * Object object = map.get(k); System.out.println(object.toString()); j++; }
			 */
			i++;
		}
		/*
		 * for(int i=0;i<exportDataList.size();i++){ row = sheet.createRow(i + 1);
		 * Set<String> keySet = exportDataList.get(i).keySet(); for(int
		 * j=0;j<keySet.size();j++) {
		 * 
		 * row.createCell(j).setCellValue(exportDataList.get(i).get(keySet.)+""); }
		 * for(int j=0;j<exportDataList.get(i).size();j++){ //将内容按顺序赋给对应的列对象
		 * row.createCell(j).setCellValue(exportDataList.get(i).get(j+"")+""); } }
		 */
		return wb;
	}

}
